The systems deployed in the business applications for handling voluminous data in businesses, industries, and research organizations are getting complex. Some of the places where complex systems are deployed include applications in businesses of high social impact such as financial services, healthcare and manufacturing. These complex applications necessarily handle humungous data volumes with requires optimized system of communication with reduced latencies.
These system applications are developed and tested through specified sequence of development life cycle. In the existing application development practices during various development phases a system or part the system is tested for desired results. Such tested applications are deployed in the production environment where actually operations of the systems so tested are justified. However, often during deployment process the systems tend to behave differently, not giving expected results.
In these low latency messaging or communication systems, estimation and forecasting during development process is of crucial significance particularly before deploying such systems. In the existing practices these parameters and other related aspects are generally dealt at the time of deployment of the said systems in the production environment. This shortcoming in the existing practices is apparent due to an unavailability of an effective testing, estimation and forecasting means during development of the applications. The testing and estimation of performance of the applications development environment is essential for assuring a quality of the applications.
It is well established in the art that predicting a performance quality of a huge application in production environment before deployment is a big challenge. Though various standard quality assurance processes are in place for risk management, they are of less use to meet challenges in production environment. This is because of inconsistencies and lack of integration of various application processes. Hence, even after employing existing quality assurance measures, meeting performance Level Agreements (SLAs) is difficult to achieve. The primary reason for this is that developers are somehow clueless about performance of the coded SQL statements when deployed in a production environment having a database with millions of records.
It is difficult for the developers to anticipate the production level mistakes/errors. In spite of following all laid down quality procedures for application development, the uncertainty about the performance remains. Interestingly, the software tools available in the market for detection of performance related issues are effective only in the production environment where data volumes are high rather than in development environment. The development environment generally is emulated to represent a production environment by employing low cost, smaller machines and smaller databases. This smaller emulation is sufficient to validate the business functionality but not reliable to assure the quality and efficiency of the code.
Prior art discloses means and tools as mentioned in the foregoing section. One such typical testing tool is disclosed in U.S. Pat. No. 6,430,556 to Goldberg Robert et al., which teaches a query object generator tool, a database schema access query object and test objects in response to a user request for allowing the GUI to operate with vendor-specific databases. The test objects contain information that characterizes the query object for testing purposes. The information in the test objects is used with a test framework to install and initialize the query object. The test framework also uses the information in the test objects to customize part of the GUI in order to allow a user to view and interact with the installed query object. In particular, the customized GUI allows a developer to enter input parameters for a query directly from the interface and use the installed query object to perform a query with the input parameters. Results which are returned from the query are displayed on the interface. Though '556 patent teaches testing of the code using generated query objects and displaying of the results, it lacks emulation or creation of virtual test environment for production level testing. Also, US'556 patent don't disclose estimation of execution time in the production environment.
Another U.S. Pat. No. 6,615,222 to Hornibrook John et al. teaches a system and process for evaluating the performance of an operational database system without interfering with the normal operation of the operational database system is described. The process involves the creation of a test database which contains the system catalogs of the operational database system as user tables. The test database is used to compile queries using these simulated system catalogs. The access plan generated by the compilation in the test database can then be used to evaluate the performance of the queries. Though Hornibrook John et al. teaches a different method of estimating an execution time and remote installation which are unique from others. Also, the present invention proposes integration with Software Development Life Cycle to assure, performance of SQL.
U.S. Pat. No. 7,155,428 to Brown Douglas et al. discloses a method and apparatus provides for the extraction of environment information from a target database system. The environment information includes at least one of cost-related information and random sample statistics. The cost-related information and/or random sample statistics are imported to a test system, where the cost-related information and/or random sample statistics are used in query plan analysis by an optimizer. Though '428 provides a cost estimation and related database statistics, these are existing features available with Oracle database. The '428 patent discloses only exports the statistics in test environment and estimation time for export operation, however emulation of the test environment at remote place and estimating the execution time for SQLs is still not disclosed in the prior art.
Thus the prior arts failed to recognize the significance of performance assurance of each process in development environment rather than in production environment. Further, emulation of the test environment and a tool to test, estimate and forecast the performance related quantifiers is not substantially disclosed in the prior art.
Other features and advantages of the present invention will be explained in the following description of the invention having reference to the appended drawings.